package model;

import java.util.Observable;

public class Lager extends Observable {

	// Daten

	private int id;
	private String name;
	private int bestand;
	private int ueberLager;
	private Lagerliste unterLag;

	// Konstruktoren

	public Lager() {
		unterLag = new Lagerliste();
	}

	public Lager(int lagId, String lagNa, int best, int uLag) {

		setId(lagId);
		setName(lagNa);
		setBestand(best);
		setUeberLager(uLag);
		unterLag = new Lagerliste();

	}

	// Getter und Setter

	public int getId() {
		return id;
	}

	public void setId(int lagId) {
		this.id = lagId;
		setChanged();
		notifyObservers();
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
		setChanged();
		notifyObservers();
	}

	public int getBestand() {
		return bestand;
	}

	public void aendereBestand(int bestand) {
		this.bestand = this.bestand + bestand;

		for (Lager zwischenlager : Zwischenlagerliste
				.getDieMateriallagerliste()) {
			if (zwischenlager.getId() == this.getUeberLager())
				zwischenlager.aendereBestand(bestand);
		}
		for (Lager hauptlager : Hauptlagerliste.getDieHauptlagerliste()) {
			if (hauptlager.getId() == this.getUeberLager())
				hauptlager.aendereBestand(bestand);

		}

		setChanged();
		notifyObservers();
	}

	public void setBestand(int bestand) {
		this.bestand = bestand;
		setChanged();
		notifyObservers();
	}

	public Lagerliste getUnterLag() {
		return unterLag;
	}

	public void setUnterLag(Lagerliste unterLag) {

		this.unterLag = unterLag;
		setChanged();
		notifyObservers();
	}

	public int getUeberLager() {
		return ueberLager;
	}

	public void setUeberLager(int ueberLager) {
		this.ueberLager = ueberLager;
		setChanged();
		notifyObservers();
	}

}
